local ARS#13
Open
VladimirKuk wants to merge 1011 commits into
Open
Conversation
apannerselva
force-pushed
the
mrvl-local-ARS
branch
5 times, most recently
from
November 6, 2025 01:40
e99ae40 to
53f72b0
Compare
apannerselva
force-pushed
the
mrvl-local-ARS
branch
3 times, most recently
from
February 19, 2026 17:17
24ddd56 to
0e6eecd
Compare
apannerselva
force-pushed
the
mrvl-local-ARS
branch
from
May 6, 2026 05:38
0e6eecd to
e06d2fe
Compare
apannerselva
pushed a commit
that referenced
this pull request
May 6, 2026
…net#25643) * [build] Add build timing report and dependency analysis tools Add three scripts for build performance instrumentation: - scripts/build-timing-report.sh: Parse per-package timing from build logs (HEADER/FOOTER timestamps), generate sorted duration table, phase breakdown, parallelism timeline, and CSV export. - scripts/build-dep-graph.py: Parse rules/*.mk dependency graph, compute critical path, fan-out/fan-in bottleneck analysis, and generate DOT/JSON output for visualization. - scripts/build-resource-monitor.sh: Sample CPU, memory, disk I/O, and Docker container count during builds for resource utilization analysis. Add "make build-report" target to slave.mk that runs the timing report and dependency analysis after a build completes. Example output from a VS build on 24-core/30GB machine: - 210 packages built in 53m wall time (173m CPU) - Max concurrency: 5 (with SONIC_CONFIG_BUILD_JOBS=4) - Critical path: 14 packages deep (libnl -> libswsscommon -> utilities) - Top bottleneck: LIBSWSSCOMMON with 48 downstream dependents Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com> * Address Copilot review: fix 17 bugs in build analysis scripts - Use free -m with division instead of free -g to avoid rounding (#1) - Add = and ?= to Makefile dependency regex patterns (#2, #7) - CPU calculation now uses /proc/stat delta (two reads) (#3, sonic-net#14) - Fix misleading 'critical path estimate' comment (#4) - Fix parallelism timeline comment (60s not 10s) (#5) - Include after-relationship packages in fan stats (#6) - Guard disk I/O division by zero when INTERVAL<=1 (#8) - Remove unused elapsed_line variable (#9) - Remove redundant LIBSWSSCOMMON_DBG check (#10) - Remove active_make_jobs from CSV header comment (#11) - Wire up _RDEPENDS parsing to build reverse deps (#12) - Remove unnecessary 'if v' filter on rdeps JSON (#13) - Remove unused REPORT_FORMAT parameter (sonic-net#15) - Add cycle detection to critical path algorithm (sonic-net#16) - Add execute permission check for companion scripts (sonic-net#17) Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com> --------- Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com> Co-authored-by: Rustiqly <rustiqly@users.noreply.github.com>
apannerselva
pushed a commit
that referenced
this pull request
May 6, 2026
…dating udevd rules (sonic-net#26343) - Why I did it On SONiC SmartSwitch platforms with DPUs, systemd-udevd crashes with SIGABRT on every reboot when DPU firmware initialization is slow. During the initramfs boot phase, a standalone systemd-udevd daemon is started to handle device discovery. If DPU firmware takes longer than the 60-second udevadm settle timeout (BlueField-3 DPUs can take 120 seconds each in the failure case when they are stuck), the initramfs cannot stop this udevd before switch_root. The stale process survives into the real system but is never chrooted into the overlayfs root, leaving it with a broken filesystem view. When dpu-udev-manager.sh writes udev rules, the stale udevd detects the change and crashes on an assertion in systemd's chase() path resolution (assert(path_is_absolute(p)) at chase.c:648), because dir_fd_is_root() returns false for a process whose root still points to the initramfs rootfs rather than the overlayfs. This triggers a systemd issue : systemd/systemd#29559 which maintainers doesn't consider as a bug from systemd side. Raising this fix for our usecase. Core was generated by `/usr/lib/systemd/systemd-udevd --daemon --resolve-names=never'. Program terminated with signal SIGABRT, Aborted. #0 0x00007f29fe7f695c in ?? () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) bt #0 0x00007f29fe7f695c in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007f29fe7a1cc2 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007f29fe78a4ac in abort () from /lib/x86_64-linux-gnu/libc.so.6 #3 0x00007f29fea50c11 in ?? () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #4 0x00007f29feb94a8b in chase () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #5 0x00007f29feb956e2 in chase_and_opendir () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #6 0x00007f29feb9a609 in conf_files_list_strv () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #7 0x00007f29fea913e8 in config_get_stats_by_path () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #8 0x0000559f295519cf in ?? () #9 0x0000559f29553a77 in ?? () #10 0x00007f29fec36055 in ?? () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #11 0x00007f29fec3668d in sd_event_dispatch () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #12 0x00007f29fec394a8 in sd_event_run () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so #13 0x00007f29fec396c7 in sd_event_loop () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so sonic-net#14 0x0000559f29545820 in ?? () sonic-net#15 0x00007f29fe78bca8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 sonic-net#16 0x00007f29fe78bd65 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6 sonic-net#17 0x0000559f29545c51 in ?? () - How I did it Added a kill_stale_udevd() function to dpu-udev-manager.sh that runs before writing the udev rules. It identifies the systemd-managed udevd PID via systemctl show, then kills any other systemd-udevd --daemon process that doesn't match -- these are leftover initramfs instances. If no stale process exists (e.g. DPUs are healthy and the initramfs udevd exited cleanly), the function is a no-op. - How to verify it Deploy the image on a SmartSwitch with DPUs in a state where firmware initialization times out (>60s per DPU) by stopping image installation before firmware install step Reboot the switch Verify no new systemd-udevd coredumps in /var/core/ Verify the stale process was killed: journalctl -b 0 | grep dpu-udev-manager should show killing stale initramfs udevd PID (systemd udevd is PID ) Verify systemd-udevd.service is healthy: systemctl status systemd-udevd should show active (running) Verify DPU udev rules were written: cat /etc/udev/rules.d/92-midplane-intf.rules should contain the DPU interface naming rules Signed-off-by: Hemanth Kumar Tirupati <tirupatihemanthkumar@gmail.com>
…ic-net#27565) Why I did it SONiC does not set kernel.yama.ptrace_scope, so it inherits the kernel boot default of 0 (no restrictions). Setting it to 2 restricts ptrace attachment to processes with CAP_SYS_PTRACE, closing same-uid cross-session snooping and FD-theft vectors via pidfd_getfd(2). Operator tooling (sudo gdb, sudo strace) is unaffected. Work item tracking Microsoft ADO: How I did it Added kernel.yama.ptrace_scope=2 to files/image_config/sysctl/90-sonic.conf.
What: Switches platform/components/docker-gbsyncd-milleniob to build on the trixie config-engine base instead of bookworm — updates docker-gbsyncd-milleniob.mk to use DOCKER_CONFIG_ENGINE_TRIXIE and SONIC_TRIXIE_DOCKERS / SONIC_TRIXIE_DBG_DOCKERS, adds SSWSYNCD to the image dependencies, and drops the bundled files/dsserve copy from the Dockerfile (now provided via the sswsyncd debian package). Why: Part of the platform-wide move from bookworm to trixie; the in-tree dsserve binary is being retired in favor of the one shipped by sswsyncd. How: Replace BOOKWORM references with TRIXIE in the .mk, add $(SSWSYNCD) to _DEPENDS, and remove the COPY files/dsserve line in Dockerfile.j2 while leaving the chmod on the now-installed path. Testing: Azure.sonic-buildimage CI green; reviewer approval from @saiarcot895. Signed-off-by: govi-nokia <govindaraj.haridass@nokia.com>
…cally (sonic-net#27617) #### Why I did it platform/vpp ``` * 756648b - (HEAD -> master, origin/master, origin/HEAD) Add VPP patch 0010: opt-in inner-aware flow hash for IPinIP/GRE/NVGRE (sonic-net#234) (14 hours ago) [Jianquan Ye] ``` #### How I did it #### How to verify it #### Description for the changelog
…atically (sonic-net#27600) #### Why I did it src/sonic-utilities ``` * 45ba12ab - (HEAD -> master, origin/master, origin/HEAD) [DPU] Add optional DPU flow dump to techsupport collection (sonic-net#4525) (33 hours ago) [Vivek] * 7164a654 - Dualtor neighbor flush inconsistent neighbors (sonic-net#4556) (34 hours ago) [Yawen] ``` #### How I did it #### How to verify it #### Description for the changelog
…ically (sonic-net#27618) #### Why I did it src/sonic-dash-ha ``` * 0e8e827 - (HEAD -> master, origin/master, origin/HEAD) Fix handling of health signals in NPU-driven HA (sonic-net#170) (8 hours ago) [Changrong Wu] * 1813236 - [ci] Update PR checker pipeline dependencies. (sonic-net#173) (22 hours ago) [Liu Shilong] ``` #### How I did it #### How to verify it #### Description for the changelog
…D automatically (sonic-net#27619) #### Why I did it src/sonic-platform-daemons ``` * ee27a02 - (HEAD -> master, origin/master, origin/HEAD) [chassisd] Add testbed script for DPU reboot cause persistence (sonic-net#826) (2 hours ago) [Vasundhara Volam] ``` #### How I did it #### How to verify it #### Description for the changelog
…lly (sonic-net#27598) #### Why I did it src/sonic-swss ``` * 31509b2 - (HEAD -> master, origin/master, origin/HEAD) muxorch: fix shared-MAC neighbor recovery in updateFdb (sonic-net#4507) (11 hours ago) [Nikola Dancejic] * f54b71e - hftelorch: minor improvements and cleanups for high frequency telemetry (sonic-net#4315) (11 hours ago) [Ze Gan] * c89e8af - [countersyncd]: resolve object names by template id (sonic-net#4316) (11 hours ago) [Ze Gan] * bdbf331 - [orchagent/dash]: Remove retry logic, add failure handling and exception safety (sonic-net#4566) (24 hours ago) [Lawrence Lee] * 8f06cfd - Skip swss.rec updates for high volume dash child objects (sonic-net#4574) (30 hours ago) [prabhataravind] * 5303266 - [azp] Download libyang3 in the PR build pipeline (sonic-net#4618) (31 hours ago) [Lawrence Lee] * 8a9a11a - [countersyncd]: avoid blocking async actor loops (sonic-net#4319) (33 hours ago) [Ze Gan] * 1069e8e - [countersyncd]: make main actor supervision explicit (sonic-net#4320) (33 hours ago) [Ze Gan] ``` #### How I did it #### How to verify it #### Description for the changelog
…omatically (sonic-net#27599) #### Why I did it src/sonic-swss-common ``` * 56a5f28 - (HEAD -> master, origin/master, origin/HEAD) LruDedup queue policy for Notification Consumer (17 hours ago) [senthil-nexthop] * 3110aaa - swsscommon: expose batched ZmqProducerStateTable APIs to SWIG (sonic-net#1188) (26 hours ago) [Dawei Huang] ``` #### How I did it #### How to verify it #### Description for the changelog
…lly (sonic-net#27459) #### Why I did it src/sonic-gnmi ``` * 44e6d08 - (HEAD -> master, origin/master, origin/HEAD) Revert "Add DPU_COUNTERS_DB virtual path handling for DASH_METER and ENI coun…" (sonic-net#686) (32 hours ago) [yijingyan2] * e7d80c6 - Add support for InterfaceCounter vpath (sonic-net#684) (2 days ago) [Feng-msft] * 52484eb - Implements the frontend logic for gNSI Credentialz (sonic-net#672) (2 days ago) [niranjanivivek] * 4a41db5 - Add additional allowlist tables (sonic-net#681) (2 days ago) [Leyza] * 4a07685 - [gnoi] SetPackage: auto-resolve version from image when not provided (sonic-net#679) (3 days ago) [ryanzhu706] * 3184ef7 - [gnoi] expand File.Put whitelist to /host/ + mkdir-p parent dirs (sonic-net#678) (8 days ago) [Dawei Huang] * 4cd908e - Add DPU_COUNTERS_DB virtual path handling for DASH_METER and ENI counters (sonic-net#665) (10 days ago) [Lawrence Lee] ``` #### How I did it #### How to verify it #### Description for the changelog
…ic-net#27009) * [Arista] Add 'sai_instru_stat_accum_enable=1' to Arista DNX SKUs 'sai_instru_stat_accum_enable=1' makes counters like credit-wd-del no longer clear-on-read causing the output to accumulate in the output of show queue counters as desired. Signed-off-by: Nathan Wolfe <nwolfe@arista.com> * Adding sai_instru_stat_accum_enable to permitted_list Signed-off-by: Nathan Wolfe <nwolfe@arista.com>
…ically (sonic-net#27620) #### Why I did it src/sonic-redfish ``` * c11fe4e - (HEAD -> master, origin/master, origin/HEAD) Add Redfish API and gtest frameworks (#6) (33 hours ago) [Chinmoy Dey] ``` #### How I did it #### How to verify it #### Description for the changelog
…lly (sonic-net#27625) #### Why I did it src/sonic-gnmi ``` * d843728 - (HEAD -> master, origin/master, origin/HEAD) MixedDbClient: batch ZMQ Set/Del for multi-key gNMI updates (sonic-net#27250) (sonic-net#675) (81 minutes ago) [Dawei Huang] ``` #### How I did it #### How to verify it #### Description for the changelog
…lly (sonic-net#27626) #### Why I did it src/sonic-swss ``` * dcd97c9 - (HEAD -> master, origin/master, origin/copilot/research-initsaifailuretable, origin/HEAD) LruDedup queue policy for Notification Consumer (sonic-net#4586) (20 hours ago) [senthil-nexthop] ``` #### How I did it #### How to verify it #### Description for the changelog
- Why I did it Support the SONiC CLIs to change/reset SED password for Mellanox platforms. - How I did it Install sedutil Implement the relevant abstract methods in Mellanox SedMgmt(BaseSedMgmt). - How to verify it config sed change-password config sed reset-password
…-1 (sonic-net#27605) Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
…ayout regression test (sonic-net#27529) * DNS: Fix DNS_OPTIONS schema to allow ConfigDB/Redis serialization The original DNS_OPTIONS YANG model declared search, ndots, timeout and attempts as direct leafs/leaf-list of the DNS_OPTIONS container. This is not a valid layout for ConfigDB: SONiC's Redis-backed schema requires a two-level container structure where the outer container maps to a table and the inner container maps to a row key. With DNS_OPTIONS as a single-level container there is no row identifier to serialize against, so commits to config_db are rejected. This was a mistake in my original implementation that went unnoticed because the existing coverage is YANG-only. The yang_model_tests and the full-config serialization/deserialization test exercise YANG validation and JSON round-tripping, but neither simulates ConfigDB's table/row constraints. As a result every test passed while DNS_OPTIONS was in practice impossible to persist - the feature has never actually been usable in a live system. Because DNS_OPTIONS could not be serialized to ConfigDB, there cannot be any existing consumer reading it from config_db, so this schema change has no compatibility impact - there is nothing in the field to break. Wrap the existing leafs in an inner GLOBAL container so DNS_OPTIONS becomes the table and GLOBAL becomes its single well-known row, following the pattern used by other singleton tables in SONiC. The resolv.conf.j2 template, sample config, and YANG tests are updated to match. DNS_OPTIONS was first accepted in 202511, so 202511 is also broken and needs this backported. Signed-off-by: Brad House <bhouse@nexthop.ai> * sonic-yang-models: add ConfigDB layout regression test Guard against a recurrence of the DNS_OPTIONS schema mistake by walking every sonic-* YANG model at test time and asserting that every ConfigDB table container has a row layer - either a `list` (keyed rows) or an inner `container` (named singleton row). A table whose direct children are only leaf/leaf-list has no row key for ConfigDB to serialize against and cannot be persisted to Redis, even though the YANG model itself validates and the JSON serialization/deserialization round-trip test passes. This was the exact gap that let the original DNS_OPTIONS schema ship broken. The test reuses the existing yang_model pytest fixture and matches the module-filtering logic in sonic_yang_ext._build_confDbYangMap so that helper-only modules (typedefs, groupings) are skipped the same way the real ConfigDB xlate path skips them. Signed-off-by: Brad House <bhouse@nexthop.ai>
…c-net#27574) Signed-off-by: shilongliu <shilongliu@microsoft.com>
[master] Upgrade SONiC package Versions
…ly (sonic-net#27637) #### Why I did it src/sonic-stp ``` * 8afb9e3 - (HEAD -> master, origin/master, origin/HEAD) azure-pipelines: migrate libyang1 deb install to libyang3 (sonic-net#90) (54 minutes ago) [Brad House - Nexthop] ``` #### How I did it #### How to verify it #### Description for the changelog
) - Why I did it The dhcpservd readiness checker (wait_for_dhcpservd.sh) is run twice during dhcp_server init: it has startsecs=0 and exits in ~13ms, so the supervisord dependent-startup plugin re-spawns it. The first run removed /tmp/dhcpservd_ready, so the second run found no flag and timed out after 120s, logging a spurious ERR ... wait_for_dhcpservd: timed out ... after 120s. kea-dhcp4 was already up, so the container was healthy — the timeout was just log noise. - How I did it wait_for_dhcpservd.sh: don't remove the flag, only check for it — making the checker idempotent so a re-spawned run exits 0 immediately. Stale-flag cleanup stays in docker_init.sh. kea gating and the [dhcp_server] fix race issue between kea and dhcpservd sonic-net#26569 SIGUSR1/SIGHUP fix are unchanged. - How to verify it After restart, docker exec dhcp_server supervisorctl status shows dhcpservd and kea-dhcp4 RUNNING and dhcpservd-ready EXITED, and syslog no longer logs the 120s timeout. Signed-off-by: Charles Tsai <chartsai@nvidia.com>
…sonic-net#27833) - Why I did it On the BlueField-3 COM DPU (arm64-nvda_bf-bf3comdpu), show system-health detail reports Hardware: Not OK with Reasons: Failed to get PSU information, even though psu is already listed in the platform's health-check ignore list. This is a regression. Adding PDB support for system-health changed the PSU/PDB check so that it only skips when both psu and pdb are present in devices_to_ignore; previously psu alone was sufficient. The DPU has no PSU/PDB hardware and runs with psud disabled, so the PSU_INFO table is empty and the checker falls through to "Failed to get PSU information". The DPU config only listed ["psu", "fan"], so the new combined condition was never satisfied and the PSU check was no longer skipped. - How I did it Added pdb to devices_to_ignore in device/nvidia-bluefield/arm64-nvda_bf-bf3comdpu/system_health_monitoring_config.json (["psu", "fan"] -> ["psu", "fan", "pdb"]) so the PSU/PDB hardware check is fully skipped on the DPU, matching the current "ignore both psu and pdb" condition. - How to verify it On a BF3 COM DPU running the updated image: Run show system-health detail. Confirm Hardware: Status: OK (no Failed to get PSU information reason). Confirm there is no PSU Not OK PSU entry in the "monitor list". Confirm psu, fan, and pdb appear in the "ignore list". Before the fix the monitor list showed PSU Not OK PSU and Hardware: Status: Not OK; after the fix the PSU entry is listed as ignored and hardware status is OK. Signed-off-by: Connor Roos <croos@nvidia.com>
…27849) - Why I did it SN6810_LD needs more log storage for normal operation and troubleshooting. Without a platform-specific override, the installer uses the default VAR_LOG_SIZE=4096, which may be insufficient on this platform. Aligns SN6810_LD with other Mellanox LD platforms that already use VAR_LOG_SIZE=8192. - How I did it Updated device/mellanox/x86_64-nvidia_sn6810_ld-r0/installer.conf. Set VAR_LOG_SIZE=8192 so the installer passes varlog_size=8192 in the kernel command line at boot. No changes to installer scripts or platform API code; the existing installer.conf override mechanism handles this. - How to verify it Build ONIE image for x86_64-nvidia_sn6810_ld-r0. Install image on SN6810_LD hardware or SimX. After boot, verify /var/log size: df -h /var/log shows about 8G. Verify kernel cmdline: cat /proc/cmdline | grep varlog_size=8192. Confirm log rotation and syslog work under normal load. Signed-off-by: Junchao-Mellanox <junchao@nvidia.com>
…nic-net#27682) Signed-off-by: Frank Jiang <frank@nexthop.ai>
Signed-off-by: Roy Wen <roy@nexthop.ai> Co-authored-by: saravanan sellappa <saravanan@nexthop.ai>
…27824) - Why I did it To make the SKU functional, switch it to FW-control until SW-control adds uneven-split support. The SW-controlled variant will be re-introduced as a follow-up PR once the support lands. - How I did it In device/mellanox/x86_64-nvidia_sn5640-r0/Mellanox-SN5640-C508O1X2/: Removed the SW-control-only files (they were symlinks into the SN5600-V256 SKU and are not consulted under FW control): media_settings.json optics_si_settings.json Replaced the sai.profile symlink (was pointing to ../Mellanox-SN5640-C512S2/sai.profile) with a SKU-local file that preserves all SN5640 SAI keys and omits SAI_INDEPENDENT_MODULE_MODE (default behavior is FW-controlled). Replaced the pmon_daemon_control.json symlink (was pointing to the SN5600-V256 SW-control file) with a SKU-local file that sets skip_xcvrd_cmis_mgr=true, so xcvrd does not start the CMIS state machine for these modules. No code changes — config-only, scoped to a single SKU directory. - How to verify it Install on an SN5640 with the C508O1X2 layout (504 × 8x100G + cage 64 4x100G+1x400G + 2 × 1x25G). Confirm on the device: cat /usr/share/sonic/device/x86_64-nvidia_sn5640-r0/Mellanox-SN5640-C508O1X2/sai.profile shows SAI_INDEPENDENT_MODULE_MODE=0 or the key doesn't exist. cat .../Mellanox-SN5640-C508O1X2/pmon_daemon_control.json shows "skip_xcvrd_cmis_mgr": true. media_settings.json and optics_si_settings.json are absent from the SKU directory. Verify all 512 × 100G downlinks, the 4 × 100G + 1 × 400G uplinks on cage 64, and both service ports come up oper-up. Run the platform sanity / port-link tests on the SKU. Signed-off-by: Shauli Taragin <staragin@nvidia.com>
- Why I did it To enable warm-reboot on SN5640 HWSKUs - How I did it Updated vendor specific configuration files - How to verify it Run warm-reboot test cases Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
…ically (sonic-net#28036) #### Why I did it src/sonic-dash-ha ``` * 5df5d64 - (HEAD -> master, origin/master, origin/HEAD) Change handling of HA_SET up/down (dp_channel) (sonic-net#178) (9 hours ago) [Changrong Wu] ``` #### How I did it #### How to verify it #### Description for the changelog
…atically (sonic-net#28037) #### Why I did it src/sonic-utilities ``` * ec69c337 - (HEAD -> master, origin/master, origin/HEAD) [EVPN-MH] Add CLI commands for EVPN VXLAN Multihoming configuration (sonic-net#4247) (11 hours ago) [Barry Friedman] ``` #### How I did it #### How to verify it #### Description for the changelog
…t#27941) - Why I did it The DPKG cache only refreshed a target's .dep/.dep.sha when its dependency-file contents changed. Build flags live in a separate .flags file, but .deb/docker targets depend on .dep, not .flags. So a flag-only change (e.g. ENABLE_ASAN) can leave .dep's timestamp untouched, which make will see as up-to-date and a stale cached artifact will be reused instead of rebuilding with ASan. - How I did it In SHA_DEP_RULES (Makefile.cache), when the dependency SHA is unchanged but a .flags file is in the modified prerequisites ($?), touch the .dep file. This bumps its timestamp (contents unchanged) so the recipe re-runs on any flag change and LOAD_CACHE picks the right entry. - How to verify it The .flags file always shows the new value, so check the build log instead. After a non-ASan build, rm -rf target/sonic-mellanox.bin and rebuild with ENABLE_ASAN=y: grep "FLAGS DEPENDS" target/debs/trixie/swss_1.0.0_amd64.deb.log grep -c fsanitize target/debs/trixie/swss_1.0.0_amd64.deb.log Without the change the old version of swss will be included: 1 mellanox amd64 trixie n trixie Including the change fixes the flag that it was built with and triggers a rebuild: 1 mellanox amd64 trixie y trixie Which release branch to backport (provide reason below if selected) 202511 -> Using this change to optimize ASAN builds - Description for the changelog Rebuild cached targets when only build flags change Signed-off-by: Connor Roos <croos@nvidia.com>
Signed-off-by: Dakota Crozier <dakotac@arista.com>
…rabilities (sonic-net#28038) Why I did it S360 / Trivy container scanning flags the docker-ptf image's gnmic binary (/usr/local/bin/gnmic) with HIGH golang.org/x/* CVEs. The gnmic build was changed (sonic-net#27059) to build from a pinned upstream commit (653dc5dd), which locks older modules — golang.org/x/crypto v0.50.0, x/net v0.53.0, x/text v0.36.0, x/sys v0.43.0. Unlike the grpcurl build step in the same Dockerfile, the gnmic step did not upgrade these, so the vulnerable versions ship in the image. Work item tracking Microsoft ADO: 38538287 How I did it In dockers/docker-ptf/Dockerfile.j2, added go get golang.org/x/crypto@latest golang.org/x/net@latest golang.org/x/text@latest golang.org/x/sys@latest golang.org/x/oauth2@latest && go mod tidy before go build in the gnmic RUN block, matching the existing grpcurl step. How to verify it Build target/docker-ptf.gz, load it, and scan: trivy image docker-ptf:latest --scanners vuln --ignore-unfixed usr/local/bin/gnmic should report 0 fixable vulns (x/* upgraded to latest). Which release branch to backport (provide reason below if selected) Tested branch (Please provide the tested image version) docker-ptf built from this branch on latest master Description for the changelog [docker-ptf]: Upgrade gnmic golang.org/x/* dependencies to address HIGH CVEs
…-net#28016) What: Changed get_name() in switch_host_module.py to return "SWITCH_HOST" instead of "SWITCH_HOST{module_index}". Why: There will be only one SwitchHost Module in the Chassis object, so the module index appended to the name is unnecessary. How: Removed the module_index suffix from the returned name string in the get_name() method. Testing: All CI checks passed (Azure.sonic-buildimage builds across all platforms, CodeQL, Semgrep, DCO, EasyCLA all SUCCESS). Signed-off-by: Chandrasekaran Swaminathan <chander@nexthop.ai>
What: Added "DefaultDependencies=no" to sonic-usb-network-udev-init.service and usb-network-init.service (nexthop aspeed platform). Why: systemd reported an ordering cycle (networking.service <-> usb-network-init.service <-> sonic-usb-network-udev-init.service <-> basic.target), caused by the implicit DefaultDependencies=yes adding After=basic.target while networking is WantedBy basic.target. How: These services must run before networking (which lives in basic.target), so disabling default dependencies breaks the implicit After=basic.target edge and resolves the cycle. Testing: All CI checks passed (Azure.sonic-buildimage builds across all platforms, CodeQL, Semgrep, DCO, EasyCLA all SUCCESS). Verify: USB service up and running with no systemd cyclic dependency complaints. Signed-off-by: Chandrasekaran Swaminathan <chander@nexthop.ai>
What: Changed CONSOLE_BAUD_RATE from 9600 to 115200 in device/nexthop/arm64-nexthop_b27-r0/switch_cpu_console.conf. Why: The conf file from which the DB is initialized had an incorrect console speed value. How: Set the baud rate to 115200 to match the hardware settings. Testing: All CI checks passed including full Elastictest KVM suite (t0/t1/t2/dualtor/dpu/multi-asic), Azure builds across all platforms, CodeQL, Semgrep, DCO, EasyCLA all SUCCESS. Verify: console speed matches h/w settings. Signed-off-by: Chandrasekaran Swaminathan <chander@nexthop.ai>
What: Moved the Switch-BMC persistent event-log directory/file creation (/host/bmc + /host/bmc/event.log) in files/image_config/platform/rc.local to run before firsttime_exit during first boot. Why: Fixes sonic-net#27573 - the /host/bmc dir/file must exist on first boot; pmon runs as non-root so it cannot create it, causing permission-denied failures. How: Relocated the switch_bmc=1 guarded mkdir/touch/chmod block ahead of firsttime_exit in rc.local (eMMC-backed /host so events survive reboots; /var/log tmpfs not used). Testing: All CI checks passed incl. full Elastictest KVM suite (t0/t1/t2/dualtor/dpu/multi-asic) and all platform builds. prajjwal-arista validated the fix on retest; dir/file present on first and subsequent boots. Signed-off-by: Judy Joseph <jujoseph@microsoft.com>
…h_sai_thrift import on Trixie/OS13 DUTs) (sonic-net#27947) * [ci][docker-ptf] Bump docker-ptf base to Trixie (Debian 13 / py3.13) docker-ptf was still built FROM debian:bookworm (python3.11) while SONiC images moved to Debian 13 Trixie (python3.13). A Trixie image's python-saithrift deb is built for py3.13, so its switch_sai_thrift egg (saithrift-0.9-py3.13.egg) no longer matches the py3.11 egg path baked into the PTF virtualenv easy-install.pth, breaking "import switch_sai_thrift" in the qos saithrift tests (ReleaseAllPorts). Align docker-ptf with the SONiC OS: - FROM debian:bookworm -> debian:trixie - libboost-atomic1.81.0 -> libboost-atomic1.88.0 (trixie) - python3.11 -> python3.13 virtualenv/site-packages paths - saithrift-0.9-py3.11.egg -> saithrift-0.9-py3.13.egg Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com> * [ci][docker-ptf] Use ntpsec on Trixie (ntp/ntpdate removed in Debian 13) Debian 13 (Trixie) dropped the legacy `ntp` and `ntpdate` packages. Install `ntpsec` / `ntpsec-ntpdate` on the py3 (Trixie) PTF and keep `ntp`/`ntpdate` only for the legacy mixed/buster image. Verified the full docker-ptf apt list installs cleanly on debian:trixie. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com> * docker-ptf: resolve saithrift egg path dynamically instead of moving base to Trixie Revert the docker-ptf base back to debian:bookworm and instead fix the original problem (switch_sai_thrift import failure on Trixie/OS13 DUTs) at its source: the venv easy-install.pth pinned a specific saithrift egg version (saithrift-0.9-py3.11.egg). When test_update_saithrift_ptf swaps in a saithrift deb built for a different Python minor (py3.13 on Trixie), the pinned path goes stale and switch_sai_thrift fails to import. Replace the pinned path with an executable .pth line that globs for the saithrift egg at interpreter startup, so whichever pyX.Y egg is installed is found. saithrift is thrift-generated pure Python, so the egg loads across py3.x without needing the ptf base to match the DUT image. This avoids moving docker-ptf to Trixie, which pulled in bookworm-only p4lang debs (p4lang-bmv2 -> libthrift-0.17.0, p4lang-pi -> libabsl20220623) that are not installable on Trixie and broke the vs build target. Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com> * ci: re-trigger CI (stale aspeed_arm64 bmcweb build) Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com> --------- Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ious dockerd 404 (sonic-net#27991) * [memory_checker] Skip containers removed during listing to avoid spurious dockerd 404 Signed-off-by: Antonio Hui <antonio@nexthop.ai> * Trigger CI Signed-off-by: Antonio Hui <antonio@nexthop.ai> --------- Signed-off-by: Antonio Hui <antonio@nexthop.ai>
…lly (sonic-net#28059) #### Why I did it src/sonic-gnmi ``` * f3a6e5b - (HEAD -> master, origin/master, origin/HEAD) Add v2r mapping for VoQ counters in VoQ Chassis (sonic-net#705) (10 hours ago) [Vineet Mittal] ``` #### How I did it #### How to verify it #### Description for the changelog
… automatically (sonic-net#28062) #### Why I did it src/sonic-platform-common ``` * b354f6f - (HEAD -> master, origin/master, origin/HEAD) Refactory XcvrApiFactory to use ModuleEepromLowerMemoryInfo directly (sonic-net#699) (2 hours ago) [Brian Gallagher] ``` #### How I did it #### How to verify it #### Description for the changelog
…atically (sonic-net#28063) #### Why I did it src/sonic-utilities ``` * d68cdd65 - (HEAD -> master, origin/master, origin/HEAD) Enhance FGNHG CLI to filter by and show vnet + prefix (sonic-net#4510) (3 hours ago) [Navdha Jindal] * 33c1c482 - [GCU][MGGMT_INTERFACE] Fix the remove forced_mgmt_routes unexpected value (sonic-net#4423) (6 hours ago) [Marty Y. Lok] * dd82c89b - Issue 24036: Add help for 'show ip route' subcommands (sonic-net#4123) (12 hours ago) [Anders Linn] ``` #### How I did it #### How to verify it #### Description for the changelog
…onic-net#27764) * [pddf] cpldmux: Suppress routine channel switching logs by default During normal operation, background daemons frequently call the default select and deselect functions to switch MUX channels. The current implementation prints channel status messages at KERN_INFO level on every invocation, leading to high log volume in both dmesg and syslog. To reduce log clutter, introduce a DEBUG macro and wrap these verbose pddf_dbg() calls within #if DEBUG blocks. This ensures the information is only captured when active driver debugging is required. Signed-off-by: nonodark <ef67891@yahoo.com.tw> * chore: trigger CI/CD Signed-off-by: nonodark <ef67891@yahoo.com.tw> * chore: trigger CI/CD Signed-off-by: nonodark <ef67891@yahoo.com.tw> * Refactor: remove routine channel-switching logs from hot paths entirely Signed-off-by: nonodark <ef67891@yahoo.com.tw> --------- Signed-off-by: nonodark <ef67891@yahoo.com.tw>
- Why I did it Process crash of syncd should be reflected as control plane down to NPU. For that to happen, this must be marked as a critical process - How I did it Updated critical process configuration to include the syncd program, ensuring proper system monitoring and reliability for the NVIDIA BlueField platform. - How to verify it Ran test_ha_dpu_power_down.py test Signed-off-by: Vivek Reddy <vkarri@nvidia.com>
…et#27420) Signed-off-by: Ravi Minnikanti <rminnikanti@marvell.com>
…6 iptables management (sonic-net#27863) Fixes sonic-net#28030 The Trixie image uses Docker 28.5.2, while the previous Bookworm environment used Docker 24.0.2. Docker 27+ changed IPv6 bridge/iptables behavior. As a result, dockerd now attempts IPv6 iptables programming during startup. On SmartSwitch first boot this can happen before the kernel netfilter path is fully ready, causing docker.service failure and cascading config/interface failures. Add --ip6tables=false to restore the pre-upgrade behavior where Docker does not program IPv6 iptables rules. #### Why I did it Docker 28 (introduced during the Trixie upgrade) enables additional IPv6 iptables programming during daemon startup. On SmartSwitch first boot this can race with early platform/kernel initialization and cause docker.service startup failure. #### How I did it Added: --ip6tables=false to Docker daemon startup options in: /etc/systemd/system/docker.service.d/docker.service.conf This disables Docker IPv6 iptables rule programming during daemon startup. #### How to verify it Do sonic-to-sonic upgrade using sonic-installer install (.34 image) reboot Before change: docker.service failed during first boot, interfaces-config.service failed eth0 management IP missing. After change: docker.service started successfully, interfaces-config.service completed successfully, management eth0 configuration applied correctly. Signed-off-by: Ramesh Raghupathy <ram@cisco.com>
Change-Id: I20c42d1f234ab70c6379f3e315a29fc86a9dcbe6 Why I did it This PR adds buffer template support for Micas M2-W6940 series switches. Work item tracking Microsoft ADO (number only): How I did it Added the following device-specific buffer configuration templates under device/micas/: M2-W6940-128QC (x86_64-micas_m2-w6940-128qc-r0) M2-W6940-64OC (x86_64-micas_m2-w6940-64oc-r0) M2-W6940-128X1-FR4/M2-W6940-64X1-FR4 (x86_64-micas_m2-w6940-128x1-fr4-pure-pd-r0) M2-W6940-128X1-FR4/M2-W6940-64X1-FR4 (x86_64-micas_m2-w6940-128x1-fr4-r0) Change-Id: I20c42d1f234ab70c6379f3e315a29fc86a9dcbe6 Signed-off-by: Yifei Li <yifei@micasnetworks.com>
modify cpo bailly device, add rlm dom and laser info Why I did it modify cpo bailly device, add rlm dom and laser info Work item tracking Microsoft ADO (number only): How I did it modify cpo bailly device, add rlm dom and laser info How to verify it show interfaces transceiver eeprom -d Ethernet show interfaces transceiver status Ethernet The relevant commands can display the information related to CPO RLM. Signed-off-by: Kroos <kroos@micasnetworks.com>
…onic-net#27470) 1) fixed 2 rare race conditions 2) optimized platform drivers 3) added a hwsku for 2 port config 4) fixed a hwmon temp sensor reading issue 5) updated thermal alg Signed-off-by: hehuang <henry.1.huang@nokia.com>
Added support for local ARS (Adaptive Routing and Switching). HLD: sonic-net/SONiC#1958 Signed-off-by: VladimirKuk <31180446+VladimirKuk@users.noreply.github.com>
apannerselva
force-pushed
the
mrvl-local-ARS
branch
from
June 25, 2026 09:12
e06d2fe to
316ed5a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Raised PR for internal comments